package com.example.cursor_orm.dao;

import java.util.List;

/**
 * 基础DAO接口
 * 定义通用的CRUD操作
 */
public interface BaseDAO<T> {
    
    /**
     * 插入一条记录
     * @param entity 实体对象
     * @return 影响的行数
     */
    int insert(T entity);
    
    /**
     * 根据ID删除记录
     * @param id 主键ID
     * @return 影响的行数
     */
    int deleteById(Integer id);
    
    /**
     * 更新记录
     * @param entity 实体对象
     * @return 影响的行数
     */
    int update(T entity);
    
    /**
     * 根据ID查询记录
     * @param id 主键ID
     * @return 实体对象
     */
    T findById(Integer id);
    
    /**
     * 查询所有记录
     * @return 实体对象列表
     */
    List<T> findAll();
    
    /**
     * 根据条件查询记录
     * @param condition 查询条件
     * @return 实体对象列表
     */
    List<T> findByCondition(String condition);
    
    /**
     * 统计记录总数
     * @return 记录总数
     */
    int count();
} 